↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
subset_in_ag(.(X, Xs), Ys) → U2_ag(X, Xs, Ys, member_in_ag(X, Ys))
member_in_ag(X, .(Y, Xs)) → U1_ag(X, Y, Xs, member_in_ag(X, Xs))
member_in_ag(X, .(X, Xs)) → member_out_ag(X, .(X, Xs))
U1_ag(X, Y, Xs, member_out_ag(X, Xs)) → member_out_ag(X, .(Y, Xs))
U2_ag(X, Xs, Ys, member_out_ag(X, Ys)) → U3_ag(X, Xs, Ys, subset_in_ag(Xs, Ys))
subset_in_ag([], Ys) → subset_out_ag([], Ys)
U3_ag(X, Xs, Ys, subset_out_ag(Xs, Ys)) → subset_out_ag(.(X, Xs), Ys)
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PrologToPiTRSProof
subset_in_ag(.(X, Xs), Ys) → U2_ag(X, Xs, Ys, member_in_ag(X, Ys))
member_in_ag(X, .(Y, Xs)) → U1_ag(X, Y, Xs, member_in_ag(X, Xs))
member_in_ag(X, .(X, Xs)) → member_out_ag(X, .(X, Xs))
U1_ag(X, Y, Xs, member_out_ag(X, Xs)) → member_out_ag(X, .(Y, Xs))
U2_ag(X, Xs, Ys, member_out_ag(X, Ys)) → U3_ag(X, Xs, Ys, subset_in_ag(Xs, Ys))
subset_in_ag([], Ys) → subset_out_ag([], Ys)
U3_ag(X, Xs, Ys, subset_out_ag(Xs, Ys)) → subset_out_ag(.(X, Xs), Ys)
SUBSET_IN_AG(.(X, Xs), Ys) → U2_AG(X, Xs, Ys, member_in_ag(X, Ys))
SUBSET_IN_AG(.(X, Xs), Ys) → MEMBER_IN_AG(X, Ys)
MEMBER_IN_AG(X, .(Y, Xs)) → U1_AG(X, Y, Xs, member_in_ag(X, Xs))
MEMBER_IN_AG(X, .(Y, Xs)) → MEMBER_IN_AG(X, Xs)
U2_AG(X, Xs, Ys, member_out_ag(X, Ys)) → U3_AG(X, Xs, Ys, subset_in_ag(Xs, Ys))
U2_AG(X, Xs, Ys, member_out_ag(X, Ys)) → SUBSET_IN_AG(Xs, Ys)
subset_in_ag(.(X, Xs), Ys) → U2_ag(X, Xs, Ys, member_in_ag(X, Ys))
member_in_ag(X, .(Y, Xs)) → U1_ag(X, Y, Xs, member_in_ag(X, Xs))
member_in_ag(X, .(X, Xs)) → member_out_ag(X, .(X, Xs))
U1_ag(X, Y, Xs, member_out_ag(X, Xs)) → member_out_ag(X, .(Y, Xs))
U2_ag(X, Xs, Ys, member_out_ag(X, Ys)) → U3_ag(X, Xs, Ys, subset_in_ag(Xs, Ys))
subset_in_ag([], Ys) → subset_out_ag([], Ys)
U3_ag(X, Xs, Ys, subset_out_ag(Xs, Ys)) → subset_out_ag(.(X, Xs), Ys)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PrologToPiTRSProof
SUBSET_IN_AG(.(X, Xs), Ys) → U2_AG(X, Xs, Ys, member_in_ag(X, Ys))
SUBSET_IN_AG(.(X, Xs), Ys) → MEMBER_IN_AG(X, Ys)
MEMBER_IN_AG(X, .(Y, Xs)) → U1_AG(X, Y, Xs, member_in_ag(X, Xs))
MEMBER_IN_AG(X, .(Y, Xs)) → MEMBER_IN_AG(X, Xs)
U2_AG(X, Xs, Ys, member_out_ag(X, Ys)) → U3_AG(X, Xs, Ys, subset_in_ag(Xs, Ys))
U2_AG(X, Xs, Ys, member_out_ag(X, Ys)) → SUBSET_IN_AG(Xs, Ys)
subset_in_ag(.(X, Xs), Ys) → U2_ag(X, Xs, Ys, member_in_ag(X, Ys))
member_in_ag(X, .(Y, Xs)) → U1_ag(X, Y, Xs, member_in_ag(X, Xs))
member_in_ag(X, .(X, Xs)) → member_out_ag(X, .(X, Xs))
U1_ag(X, Y, Xs, member_out_ag(X, Xs)) → member_out_ag(X, .(Y, Xs))
U2_ag(X, Xs, Ys, member_out_ag(X, Ys)) → U3_ag(X, Xs, Ys, subset_in_ag(Xs, Ys))
subset_in_ag([], Ys) → subset_out_ag([], Ys)
U3_ag(X, Xs, Ys, subset_out_ag(Xs, Ys)) → subset_out_ag(.(X, Xs), Ys)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PrologToPiTRSProof
MEMBER_IN_AG(X, .(Y, Xs)) → MEMBER_IN_AG(X, Xs)
subset_in_ag(.(X, Xs), Ys) → U2_ag(X, Xs, Ys, member_in_ag(X, Ys))
member_in_ag(X, .(Y, Xs)) → U1_ag(X, Y, Xs, member_in_ag(X, Xs))
member_in_ag(X, .(X, Xs)) → member_out_ag(X, .(X, Xs))
U1_ag(X, Y, Xs, member_out_ag(X, Xs)) → member_out_ag(X, .(Y, Xs))
U2_ag(X, Xs, Ys, member_out_ag(X, Ys)) → U3_ag(X, Xs, Ys, subset_in_ag(Xs, Ys))
subset_in_ag([], Ys) → subset_out_ag([], Ys)
U3_ag(X, Xs, Ys, subset_out_ag(Xs, Ys)) → subset_out_ag(.(X, Xs), Ys)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
↳ PrologToPiTRSProof
MEMBER_IN_AG(X, .(Y, Xs)) → MEMBER_IN_AG(X, Xs)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPSizeChangeProof
↳ PiDP
↳ PrologToPiTRSProof
MEMBER_IN_AG(.(Y, Xs)) → MEMBER_IN_AG(Xs)
From the DPs we obtained the following set of size-change graphs:
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PrologToPiTRSProof
U2_AG(X, Xs, Ys, member_out_ag(X, Ys)) → SUBSET_IN_AG(Xs, Ys)
SUBSET_IN_AG(.(X, Xs), Ys) → U2_AG(X, Xs, Ys, member_in_ag(X, Ys))
subset_in_ag(.(X, Xs), Ys) → U2_ag(X, Xs, Ys, member_in_ag(X, Ys))
member_in_ag(X, .(Y, Xs)) → U1_ag(X, Y, Xs, member_in_ag(X, Xs))
member_in_ag(X, .(X, Xs)) → member_out_ag(X, .(X, Xs))
U1_ag(X, Y, Xs, member_out_ag(X, Xs)) → member_out_ag(X, .(Y, Xs))
U2_ag(X, Xs, Ys, member_out_ag(X, Ys)) → U3_ag(X, Xs, Ys, subset_in_ag(Xs, Ys))
subset_in_ag([], Ys) → subset_out_ag([], Ys)
U3_ag(X, Xs, Ys, subset_out_ag(Xs, Ys)) → subset_out_ag(.(X, Xs), Ys)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PrologToPiTRSProof
U2_AG(X, Xs, Ys, member_out_ag(X, Ys)) → SUBSET_IN_AG(Xs, Ys)
SUBSET_IN_AG(.(X, Xs), Ys) → U2_AG(X, Xs, Ys, member_in_ag(X, Ys))
member_in_ag(X, .(Y, Xs)) → U1_ag(X, Y, Xs, member_in_ag(X, Xs))
member_in_ag(X, .(X, Xs)) → member_out_ag(X, .(X, Xs))
U1_ag(X, Y, Xs, member_out_ag(X, Xs)) → member_out_ag(X, .(Y, Xs))
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
↳ PrologToPiTRSProof
SUBSET_IN_AG(Ys) → U2_AG(Ys, member_in_ag(Ys))
U2_AG(Ys, member_out_ag(X)) → SUBSET_IN_AG(Ys)
member_in_ag(.(Y, Xs)) → U1_ag(member_in_ag(Xs))
member_in_ag(.(X, Xs)) → member_out_ag(X)
U1_ag(member_out_ag(X)) → member_out_ag(X)
member_in_ag(x0)
U1_ag(x0)
SUBSET_IN_AG(.(x0, x1)) → U2_AG(.(x0, x1), U1_ag(member_in_ag(x1)))
SUBSET_IN_AG(.(x0, x1)) → U2_AG(.(x0, x1), member_out_ag(x0))
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Instantiation
↳ PrologToPiTRSProof
SUBSET_IN_AG(.(x0, x1)) → U2_AG(.(x0, x1), member_out_ag(x0))
SUBSET_IN_AG(.(x0, x1)) → U2_AG(.(x0, x1), U1_ag(member_in_ag(x1)))
U2_AG(Ys, member_out_ag(X)) → SUBSET_IN_AG(Ys)
member_in_ag(.(Y, Xs)) → U1_ag(member_in_ag(Xs))
member_in_ag(.(X, Xs)) → member_out_ag(X)
U1_ag(member_out_ag(X)) → member_out_ag(X)
member_in_ag(x0)
U1_ag(x0)
U2_AG(.(z0, z1), member_out_ag(z0)) → SUBSET_IN_AG(.(z0, z1))
U2_AG(.(z0, z1), member_out_ag(x1)) → SUBSET_IN_AG(.(z0, z1))
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Instantiation
↳ QDP
↳ NonTerminationProof
↳ PrologToPiTRSProof
SUBSET_IN_AG(.(x0, x1)) → U2_AG(.(x0, x1), member_out_ag(x0))
U2_AG(.(z0, z1), member_out_ag(z0)) → SUBSET_IN_AG(.(z0, z1))
U2_AG(.(z0, z1), member_out_ag(x1)) → SUBSET_IN_AG(.(z0, z1))
SUBSET_IN_AG(.(x0, x1)) → U2_AG(.(x0, x1), U1_ag(member_in_ag(x1)))
member_in_ag(.(Y, Xs)) → U1_ag(member_in_ag(Xs))
member_in_ag(.(X, Xs)) → member_out_ag(X)
U1_ag(member_out_ag(X)) → member_out_ag(X)
member_in_ag(x0)
U1_ag(x0)
SUBSET_IN_AG(.(x0, x1)) → U2_AG(.(x0, x1), member_out_ag(x0))
U2_AG(.(z0, z1), member_out_ag(z0)) → SUBSET_IN_AG(.(z0, z1))
U2_AG(.(z0, z1), member_out_ag(x1)) → SUBSET_IN_AG(.(z0, z1))
SUBSET_IN_AG(.(x0, x1)) → U2_AG(.(x0, x1), U1_ag(member_in_ag(x1)))
member_in_ag(.(Y, Xs)) → U1_ag(member_in_ag(Xs))
member_in_ag(.(X, Xs)) → member_out_ag(X)
U1_ag(member_out_ag(X)) → member_out_ag(X)
subset_in_ag(.(X, Xs), Ys) → U2_ag(X, Xs, Ys, member_in_ag(X, Ys))
member_in_ag(X, .(Y, Xs)) → U1_ag(X, Y, Xs, member_in_ag(X, Xs))
member_in_ag(X, .(X, Xs)) → member_out_ag(X, .(X, Xs))
U1_ag(X, Y, Xs, member_out_ag(X, Xs)) → member_out_ag(X, .(Y, Xs))
U2_ag(X, Xs, Ys, member_out_ag(X, Ys)) → U3_ag(X, Xs, Ys, subset_in_ag(Xs, Ys))
subset_in_ag([], Ys) → subset_out_ag([], Ys)
U3_ag(X, Xs, Ys, subset_out_ag(Xs, Ys)) → subset_out_ag(.(X, Xs), Ys)
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
subset_in_ag(.(X, Xs), Ys) → U2_ag(X, Xs, Ys, member_in_ag(X, Ys))
member_in_ag(X, .(Y, Xs)) → U1_ag(X, Y, Xs, member_in_ag(X, Xs))
member_in_ag(X, .(X, Xs)) → member_out_ag(X, .(X, Xs))
U1_ag(X, Y, Xs, member_out_ag(X, Xs)) → member_out_ag(X, .(Y, Xs))
U2_ag(X, Xs, Ys, member_out_ag(X, Ys)) → U3_ag(X, Xs, Ys, subset_in_ag(Xs, Ys))
subset_in_ag([], Ys) → subset_out_ag([], Ys)
U3_ag(X, Xs, Ys, subset_out_ag(Xs, Ys)) → subset_out_ag(.(X, Xs), Ys)
SUBSET_IN_AG(.(X, Xs), Ys) → U2_AG(X, Xs, Ys, member_in_ag(X, Ys))
SUBSET_IN_AG(.(X, Xs), Ys) → MEMBER_IN_AG(X, Ys)
MEMBER_IN_AG(X, .(Y, Xs)) → U1_AG(X, Y, Xs, member_in_ag(X, Xs))
MEMBER_IN_AG(X, .(Y, Xs)) → MEMBER_IN_AG(X, Xs)
U2_AG(X, Xs, Ys, member_out_ag(X, Ys)) → U3_AG(X, Xs, Ys, subset_in_ag(Xs, Ys))
U2_AG(X, Xs, Ys, member_out_ag(X, Ys)) → SUBSET_IN_AG(Xs, Ys)
subset_in_ag(.(X, Xs), Ys) → U2_ag(X, Xs, Ys, member_in_ag(X, Ys))
member_in_ag(X, .(Y, Xs)) → U1_ag(X, Y, Xs, member_in_ag(X, Xs))
member_in_ag(X, .(X, Xs)) → member_out_ag(X, .(X, Xs))
U1_ag(X, Y, Xs, member_out_ag(X, Xs)) → member_out_ag(X, .(Y, Xs))
U2_ag(X, Xs, Ys, member_out_ag(X, Ys)) → U3_ag(X, Xs, Ys, subset_in_ag(Xs, Ys))
subset_in_ag([], Ys) → subset_out_ag([], Ys)
U3_ag(X, Xs, Ys, subset_out_ag(Xs, Ys)) → subset_out_ag(.(X, Xs), Ys)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
SUBSET_IN_AG(.(X, Xs), Ys) → U2_AG(X, Xs, Ys, member_in_ag(X, Ys))
SUBSET_IN_AG(.(X, Xs), Ys) → MEMBER_IN_AG(X, Ys)
MEMBER_IN_AG(X, .(Y, Xs)) → U1_AG(X, Y, Xs, member_in_ag(X, Xs))
MEMBER_IN_AG(X, .(Y, Xs)) → MEMBER_IN_AG(X, Xs)
U2_AG(X, Xs, Ys, member_out_ag(X, Ys)) → U3_AG(X, Xs, Ys, subset_in_ag(Xs, Ys))
U2_AG(X, Xs, Ys, member_out_ag(X, Ys)) → SUBSET_IN_AG(Xs, Ys)
subset_in_ag(.(X, Xs), Ys) → U2_ag(X, Xs, Ys, member_in_ag(X, Ys))
member_in_ag(X, .(Y, Xs)) → U1_ag(X, Y, Xs, member_in_ag(X, Xs))
member_in_ag(X, .(X, Xs)) → member_out_ag(X, .(X, Xs))
U1_ag(X, Y, Xs, member_out_ag(X, Xs)) → member_out_ag(X, .(Y, Xs))
U2_ag(X, Xs, Ys, member_out_ag(X, Ys)) → U3_ag(X, Xs, Ys, subset_in_ag(Xs, Ys))
subset_in_ag([], Ys) → subset_out_ag([], Ys)
U3_ag(X, Xs, Ys, subset_out_ag(Xs, Ys)) → subset_out_ag(.(X, Xs), Ys)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
MEMBER_IN_AG(X, .(Y, Xs)) → MEMBER_IN_AG(X, Xs)
subset_in_ag(.(X, Xs), Ys) → U2_ag(X, Xs, Ys, member_in_ag(X, Ys))
member_in_ag(X, .(Y, Xs)) → U1_ag(X, Y, Xs, member_in_ag(X, Xs))
member_in_ag(X, .(X, Xs)) → member_out_ag(X, .(X, Xs))
U1_ag(X, Y, Xs, member_out_ag(X, Xs)) → member_out_ag(X, .(Y, Xs))
U2_ag(X, Xs, Ys, member_out_ag(X, Ys)) → U3_ag(X, Xs, Ys, subset_in_ag(Xs, Ys))
subset_in_ag([], Ys) → subset_out_ag([], Ys)
U3_ag(X, Xs, Ys, subset_out_ag(Xs, Ys)) → subset_out_ag(.(X, Xs), Ys)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
MEMBER_IN_AG(X, .(Y, Xs)) → MEMBER_IN_AG(X, Xs)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPSizeChangeProof
↳ PiDP
MEMBER_IN_AG(.(Y, Xs)) → MEMBER_IN_AG(Xs)
From the DPs we obtained the following set of size-change graphs:
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
U2_AG(X, Xs, Ys, member_out_ag(X, Ys)) → SUBSET_IN_AG(Xs, Ys)
SUBSET_IN_AG(.(X, Xs), Ys) → U2_AG(X, Xs, Ys, member_in_ag(X, Ys))
subset_in_ag(.(X, Xs), Ys) → U2_ag(X, Xs, Ys, member_in_ag(X, Ys))
member_in_ag(X, .(Y, Xs)) → U1_ag(X, Y, Xs, member_in_ag(X, Xs))
member_in_ag(X, .(X, Xs)) → member_out_ag(X, .(X, Xs))
U1_ag(X, Y, Xs, member_out_ag(X, Xs)) → member_out_ag(X, .(Y, Xs))
U2_ag(X, Xs, Ys, member_out_ag(X, Ys)) → U3_ag(X, Xs, Ys, subset_in_ag(Xs, Ys))
subset_in_ag([], Ys) → subset_out_ag([], Ys)
U3_ag(X, Xs, Ys, subset_out_ag(Xs, Ys)) → subset_out_ag(.(X, Xs), Ys)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
U2_AG(X, Xs, Ys, member_out_ag(X, Ys)) → SUBSET_IN_AG(Xs, Ys)
SUBSET_IN_AG(.(X, Xs), Ys) → U2_AG(X, Xs, Ys, member_in_ag(X, Ys))
member_in_ag(X, .(Y, Xs)) → U1_ag(X, Y, Xs, member_in_ag(X, Xs))
member_in_ag(X, .(X, Xs)) → member_out_ag(X, .(X, Xs))
U1_ag(X, Y, Xs, member_out_ag(X, Xs)) → member_out_ag(X, .(Y, Xs))
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
U2_AG(Ys, member_out_ag(X, Ys)) → SUBSET_IN_AG(Ys)
SUBSET_IN_AG(Ys) → U2_AG(Ys, member_in_ag(Ys))
member_in_ag(.(Y, Xs)) → U1_ag(Y, Xs, member_in_ag(Xs))
member_in_ag(.(X, Xs)) → member_out_ag(X, .(X, Xs))
U1_ag(Y, Xs, member_out_ag(X, Xs)) → member_out_ag(X, .(Y, Xs))
member_in_ag(x0)
U1_ag(x0, x1, x2)
SUBSET_IN_AG(.(x0, x1)) → U2_AG(.(x0, x1), member_out_ag(x0, .(x0, x1)))
SUBSET_IN_AG(.(x0, x1)) → U2_AG(.(x0, x1), U1_ag(x0, x1, member_in_ag(x1)))
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Instantiation
SUBSET_IN_AG(.(x0, x1)) → U2_AG(.(x0, x1), member_out_ag(x0, .(x0, x1)))
SUBSET_IN_AG(.(x0, x1)) → U2_AG(.(x0, x1), U1_ag(x0, x1, member_in_ag(x1)))
U2_AG(Ys, member_out_ag(X, Ys)) → SUBSET_IN_AG(Ys)
member_in_ag(.(Y, Xs)) → U1_ag(Y, Xs, member_in_ag(Xs))
member_in_ag(.(X, Xs)) → member_out_ag(X, .(X, Xs))
U1_ag(Y, Xs, member_out_ag(X, Xs)) → member_out_ag(X, .(Y, Xs))
member_in_ag(x0)
U1_ag(x0, x1, x2)
U2_AG(.(z0, z1), member_out_ag(z0, .(z0, z1))) → SUBSET_IN_AG(.(z0, z1))
U2_AG(.(z0, z1), member_out_ag(x1, .(z0, z1))) → SUBSET_IN_AG(.(z0, z1))
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Instantiation
↳ QDP
↳ NonTerminationProof
U2_AG(.(z0, z1), member_out_ag(z0, .(z0, z1))) → SUBSET_IN_AG(.(z0, z1))
SUBSET_IN_AG(.(x0, x1)) → U2_AG(.(x0, x1), member_out_ag(x0, .(x0, x1)))
SUBSET_IN_AG(.(x0, x1)) → U2_AG(.(x0, x1), U1_ag(x0, x1, member_in_ag(x1)))
U2_AG(.(z0, z1), member_out_ag(x1, .(z0, z1))) → SUBSET_IN_AG(.(z0, z1))
member_in_ag(.(Y, Xs)) → U1_ag(Y, Xs, member_in_ag(Xs))
member_in_ag(.(X, Xs)) → member_out_ag(X, .(X, Xs))
U1_ag(Y, Xs, member_out_ag(X, Xs)) → member_out_ag(X, .(Y, Xs))
member_in_ag(x0)
U1_ag(x0, x1, x2)
U2_AG(.(z0, z1), member_out_ag(z0, .(z0, z1))) → SUBSET_IN_AG(.(z0, z1))
SUBSET_IN_AG(.(x0, x1)) → U2_AG(.(x0, x1), member_out_ag(x0, .(x0, x1)))
SUBSET_IN_AG(.(x0, x1)) → U2_AG(.(x0, x1), U1_ag(x0, x1, member_in_ag(x1)))
U2_AG(.(z0, z1), member_out_ag(x1, .(z0, z1))) → SUBSET_IN_AG(.(z0, z1))
member_in_ag(.(Y, Xs)) → U1_ag(Y, Xs, member_in_ag(Xs))
member_in_ag(.(X, Xs)) → member_out_ag(X, .(X, Xs))
U1_ag(Y, Xs, member_out_ag(X, Xs)) → member_out_ag(X, .(Y, Xs))